home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE2 / CDWRITING / FRONTEND / Docs / Changes < prev    next >
Text File  |  2001-12-31  |  13KB  |  300 lines

  1. Changes done in the following versions:
  2.  
  3. 1.00-1.10
  4. ---------
  5. * Created
  6.  
  7. 1.11
  8. ----
  9. * Fixed a bug in layer 2 routine, which made these files sound real weird.
  10. * Added 8-bit sound support.
  11. * Added support for ARMs without SMULL.
  12.  
  13. 1.12
  14. ----
  15. * Tuned many things to cajole the compiler into making code I like. This has
  16.   speeded up everything (especially layer 3) quite a lot.
  17. * The program simply got too fast, which triggered a latent bug, that has
  18.   now been removed.
  19. * Added an "auto queue" function to the frontend. This queues the next file
  20.   in the same directory if enabled.
  21. * Added some system vars, that can control the buffer size and the volume.
  22.  
  23. 1.13-1.14
  24. ---------
  25. * Fixed a bug that could happen if none of the system vars were defined.
  26. * Various speed improvements. Not much, but it's the right direction.
  27.  
  28. 1.15
  29. ----
  30. * Forgot to make the ID3 genre byte available in the file info block.
  31. * Changed Auto Q to continue into directories it may meet while looking for
  32.   the next file. It will also go up and continue the scan in the parent when
  33.   meeting the end of a directory.
  34. * Mono was untested and of course it didn't work. It seems ok now, but my
  35.   collection of mono files is very much smaller than stereo, so no
  36.   guarantees.
  37. * If a tag is present, the player will stop looking for frames when getting
  38.   close enough to the end of the file (and only garbage can be left). Some
  39.   programs seem to align the tag on a 16 bit boundary (guess what machines
  40.   these come from), thus leaving a malformed header just before it.
  41.  
  42. 1.16
  43. ----
  44. * By request, an iconbar icon was added, so you can close/open the window
  45.   without quitting/restarting the app.
  46. * Some more checks on the frame headers added, so it skips more silly things.
  47.  
  48. 1.17
  49. ----
  50. * Changed the skipping of daft RIFF-headed mpeg streams, so it doesn't skip
  51.   quite so much.
  52. * More header checking, some more malformed streams work now.
  53. * Argh, the 'clean' clipping brought back the mono bug. Now gone again.
  54. * An error now stays displayed for the appropriate time, also if the playback
  55.   stops.
  56. * Changed some things to make the claims in the help file true, especially
  57.   wrt pausing.
  58.  
  59. 1.18
  60. ----
  61. * Changed the cpu verification code. The plan is to have only one module soon.
  62. * Changed the autoQ scan to look for files of same type rather than files of
  63.   type AMPEG.
  64.  
  65. 1.19
  66. ----
  67. * MPEG 2.0 layer 3 sounded weird (untested), and a bug was removed that fixed
  68.   it.
  69. * Made the frontend quit if the module disappears.
  70. * AMPlayer_Info now returns useful info at all times (e.g. the latest error
  71.   can be returned even if it made the player stop, which it couldn't before).
  72. * "Stream error" replaced by 3 more descriptive messages.
  73. * Survives more stream errors now - some weird ones could provoke a data abort
  74.   which wasn't very nice.
  75.  
  76. 1.20
  77. ----
  78. * Put a limit on the number of files that will be skipped while scanning for
  79.   a file to queue (with Auto Q). If that limit is reached, auto Q is turned
  80.   off. Currently the limit is 30, but will be user-adjustable at some point.
  81. * Added the option of killing the module at the same time as quitting the
  82.   frontend.
  83.  
  84. 1.21
  85. ----
  86. * Skipping back and forth was somewhat erratic at large buffer sizes, so now
  87.   it discards the buffer when the target point has been located. This improves
  88.   response, but means that only fast filing systems can supply enough data
  89.   to have sound while skipping.
  90.  
  91. 1.22
  92. ----
  93. * Changed the SWI and error number bases to allocated ones. (&52E00 and
  94.   &816B00 respectively).
  95. * Added code to check if SVC stack is almost empty when getting a callback.
  96.   This may get round some NFS/ShareFS problems, but I can't test it myself.
  97. * Changed the frequency selection so it gets closer to the desired one if
  98.   the exact match isn't available.
  99.  
  100. 1.23
  101. ----
  102. * Changed the frame->time formula so files that last a long time should not
  103.   make the counter wrap around (though I have none of those, so it's untested)
  104. * Changed the frontend to show the _module_ version to avoid confusion.
  105.  
  106. 1.24
  107. ----
  108. * Did a bit of research, and this enabled me to get some, if not all, of the
  109.   files working, that previously had strange bubbly noises in them. This is
  110.   apparently streams made by Xion and AudioCatalyst.
  111.  
  112. 1.25
  113. ----
  114. * Most of the time, the stack depth checking didn't actually work. This has
  115.   been fixed, and the checking method has also been changed (it now registers
  116.   a callafter to re-register the callback, to avoid getting into infinite
  117.   loops).
  118. * Finally found the cause of the wimp errors that could crop up when stopping.
  119.   Sadly, the fix is not exactly what I would have wanted, because it means that
  120.   the dynamic area is present until the module is killed (instead of only while
  121.   playing). It does, however, give you the ability to drag the buffer size,
  122.   also when it isn't playing.
  123. * The stack check level has been made adjustable (probably temporary until a
  124.   nice overall value is found).
  125. * Added AMPlayer$FileBuffer that controls the input buffer size.
  126.  
  127. 1.26
  128. ----
  129. * Added another auto-queue state to the frontend, which is entered when no
  130.   file could be queued. This means that you stay in auto-queue mode, instead
  131.   of the previous behaviour where it would be turned off.
  132. * Added the -Cue switch to the *AMPlay command.
  133. * Added an *AMPause command.
  134. * Added an *AMLocate command.
  135. * Added stuff to do with upcoming plugins. It isn't complete, don't use it.
  136.  
  137. 1.27
  138. ----
  139. * Added plugin support.
  140. * SWI AMPlayer_Info did not preserve all the FP registers in some cases.
  141.  
  142. 1.28
  143. ----
  144. * Extended plugin support.
  145. * Added SWI AMPlayer_FileInfo
  146. * Adjust-close on frontend window opens the directory containing the file
  147.   currently playing (if possible).
  148. * Frontend now uses AMPlayer_FileInfo to verify files when it is looking for
  149.   the next one to queue.
  150. * If file starts with an ID3v2 header, it will be skipped (how many headers
  151.   and stuff are people going to add before they realise that it's a new
  152.   file format and call it something else?)
  153. * Variable bit rate MP3 files now work.
  154. * AMPlayer$Volume is updated when the module is killed.
  155. * ID3v1.1 tags are now supported (track numbers are now returned)
  156. * 'Shutdown complete' now stops playing.
  157. * Less RMA 'thrashing' (reallocation of offset cache is now 'blocky')
  158.  
  159. 1.29
  160. ----
  161. * ID3v2 support added.
  162. * Resizing dynamic area no longer causes music to stop.
  163. * Fixed aborts that happened occasionally with varying layers and bitrates.
  164. * Switching between tracks played at different frequencies is smooth and
  165.   no longer gives helium-voices, or mega-lethargic-voices.
  166. * AMLocate command now accepts hh:mm:ss and mm:ss instead of the awkward
  167.   hh[:mm[:ss]] format.
  168. * High and low bitrates described for variable bitrate files
  169. * MPEG 2.5 at 8kHz and 12kHz now supported.
  170. * Stereo is around the right way.
  171. * VBR support for 'total time' added.
  172. * *AMInfo can now be passed a filename to provide information on that file.
  173. * Removed API information from !Help
  174. * Created AMPlayerSWIs manual (Andrew Hill)
  175. * ID3v2 frame data is now 0 terminated.
  176.  
  177. 1.30
  178. ----
  179. * Fix for misused Xing VBR headers (filesize given as zero rather than
  180.   omitted).
  181. * Minor correction of a link in the StrongHelp manual.
  182.  
  183. 1.31-1.33
  184. ---------
  185. * ARM coded many routines for speed.
  186. * Revamped build system.
  187. * Added application builds (for development only)
  188. * Added SharedSound support.
  189. * Added Streaming Interface.
  190. * Added MetaData Interface.
  191. * Added Internal Event System.
  192. * Reworked read_frame routine to back out on lack of data.
  193. * Reworked read_frame routine to cope with skipping broken data.
  194. * Reworked all code to run from ROM (Except that using the 8 bit sound system).
  195. * Added support for Multiple Instantiations.
  196. * Any pending callbacks are killed on finalisation.
  197. * Reinit active sound systems on Sound Started Service.
  198. * Moved AMPlayer module into !System, and added dummy AMPlayer module to
  199.   load the correct variant for the CPU in use automatically.
  200. * Adjust click on 'AutoQ' clears the queued item
  201. * Only AMPEG files can be added to the playlist.
  202.  
  203. 1.34
  204. ----
  205.  
  206. [Internal unreleased version]
  207.  
  208. 1.35
  209. ----
  210. * Improved multiple instantiation behaviour - now sends module instantiation
  211.   suffix to SharedSound as part of handler name.
  212. * Added callback 'safety net' (if AMPlayer comes unthreaded, we rethread on
  213.   a once-per-second basis).
  214. * Corrected stereo ordering in AMPApp.
  215. * Added sound system config SWI, together with 'User Sound System' SWIs; this
  216.   enables decode-but-not-play operation.
  217. * Pulled many tables into the code; this increases ROM usage (or RAM in the
  218.   softload case), but is paid back many times when we start multiply
  219.   instantiating the module. MI is now MUCH faster as no tables are generated.
  220. * Removed stray SMULL in the synthfp code.
  221. * Improved EOF handling in streaming case.
  222. * Bugfixes to frame decoding code; more resistant to broken streams.
  223. * Added Instance SWI calls.
  224. * Added instance details to service calls (instance handle in R8).
  225. * Responds to Sound system layers starting/stopping - so reiniting SharedSound
  226.   (or other systems where supported) does not stop playback. AMPlayer will
  227.   also degrade its sound system if SharedSound is killed, reverting when
  228.   SharedSound returns.
  229. * Fix for shared sound 'volume scale+mixing' fill code.
  230. * Fix for RIFF WAVE headers being incorrectly skipped (would previously skip
  231.   starts of some tracks). Also allows us to correctly perform FileInfo
  232.   requests on such files.
  233. * AMPlayer_Plugin, AMPlayer_Control and the streaming SWIs have had their
  234.   APIs rationalised. We now support directed queries to AMPlayer.
  235. * The AMPlayer$Volume system variable reflects the base instantiation only,
  236.   and new instantiations receive the current base instantiation volume as
  237.   their initial volume.
  238. * Improved internal handling of stream starvation.
  239. * Service_AMPlayer reason code 6 (Buffers becoming free) added.
  240. * *AMLocate can now take a -ve or +ve offset to move relative to the current
  241.   position.
  242.  
  243. 1.36
  244. ----
  245. * AMPApp: Fixed -w with no output file.
  246. * Fixed 8 bit sound system detection.
  247. * Improved FP speed (synth routines).
  248.  
  249. 1.37
  250. ----
  251. * AMPApp: Corrected sound system detection to allow all versions to run on all
  252.   machines.
  253. * Added transient playback. Transient playback instances will automatically be
  254.   terminated when the playback completes.
  255. * Documentation cross references improved and AMPlayer_Control documentation
  256.   corrected.
  257. * *AMPlay can now take -Transient to use transient playback.
  258. * Sped up FP code.
  259. * Sped up 32x32=>64 routines in AMPxxx6 builds.
  260. * Added 2x decimation code to FP and 6 builds.
  261. * AMPlayer$DecimationThreshold now used to set the sample frequency at which
  262.   decimation should kick in.
  263. * Fixed layer 1 Mono and joint stereo.
  264. * Fixed (we think) Layer 3 8000Hz.
  265. * Fixed infinite loop in ID3v2 code.
  266. * Added magic protection to directed instance calls.
  267. * FrontEnd: Can select an instance to work with; streaming instances will
  268.   have their buttons greyed for operations which are not applicable.
  269. * FrontEnd: Ctrl-drag file will play file 'transiently'. Mostly only useful
  270.   for testing.
  271. * Directed calls are now protected against invalid handles being passed to
  272.   the module.
  273. * FrontEnd: Indication of frequency improved.
  274. * On shutdown request we pause music, which prevents a remount of the disc
  275.   after the disc is dismounted; we already stop when shutdown is complete.
  276. * New huffman table lookup code (htc case).
  277. * Shrunk huffman tables to halfword (ht case).
  278. * Shrunk alloc tables from 2 words to 1 word by packing.
  279. * New bitbuffer functions.
  280. * Simplified logic in III_dequantize_sample and III_dequantize_sample_ms.
  281. * Applied ARM Ltds trick for reducing table size - thanks to Andre!
  282. * Applied single buffer change to dct36 - thanks to Andre!
  283. * File and stream handling merged. No current benefit, but should allow
  284.   improvements later.
  285. * AMPlay now takes -next to start the queued track
  286. * AMVolume can accept +volume or -volume to apply relative volume levels.
  287. * Stupid bug fixed in III_dequantise_sample_ms.
  288. * Side info region overflow bug fixed in layer 3; appears present in MPG123
  289.   too.
  290. * FrontEnd: Pause-Transience bug fixed (paused tracks would cause transience
  291.   requests to be ignored)
  292. * Addition of AMPlayer_Control buffer size in blocks, as well as bytes.
  293. * Potential fix for streaming problems (eof being set on unstarted streams)
  294. * Fix for null instance names (now appear as 'Unknown').
  295. * Fix for streaming problems; pending queue was being held with 0 terminator;
  296.   thus a race condition existed in which blocks were incorrectly marked as
  297.   being free.
  298. * Fix for MPEG 1, layer III 64kbps stereo files which exhibited bit errors
  299.   and chirps.
  300.